آموزش برنامه نویسی در ویژوال بیسیک

اموزش توابع داخلی Visual Basic ( نزدیک به 180 تابع )

Abs .1 قدر مطلق يك عدد رو برميگردونه

appActivate .2 عنوان يه پنجره رو ميگيره و اونو فعال ميكنه

Asc .3 يه كاراكتر ميگيره و كد اسكي اون رو برميگردونه (بين 0 تا 255) .اگه بهش رشته بدين كاراكتر اول رو بررسي ميكنه .مثلاAsc(“A”)= 65 

AscB .4 كار قبلي رو با بايت اول مقداري كه بش ميديم انجام ميده(نه با كاراكتر اول).خروجيش هم از نوع Byte هستش(قبلي Integer بود)

AscW .5 واسه كاراكتر هاي Unicode هستش يعني مقدار كد كاراكتر Unicode (w مخفف Wide هستش) رو برميگردونه که بين 0 تا 2 بتوان 16

Atn .6 آرك تانژانت مقداري رو كه بش داديم برميگردونه.البته زاويه رو بر حسب راديان برميگردونه كه اگه ميخواهين بر حسب درجه بكنينش بايد ضرب در 180 تقسيم بر پي بكنينش مثلا (180 * 3.14 * 1) Atnمقدار 45.0228246533569 رو برميگردونه
البته براي بدست آوردن مقدار دقيق تر پي از (Atn(1) * 4) ميتونين استفاده كنين.

Beep .7 صداي beep در مياره.

CallByName .8 با اين تابع ميشه با استفاده از اسم يه متد يا Property مربوط به يه شي كه توي يه رشته هست متد رو فراخواني كرد يا Property رو گرفت يا مقدار داد و ... .آرگومان اول شي مورد نظره مثل Command2 دومي متد يا Property مورد نظره مثل “Set Focus” يا “Caption” سومي نوع فراخوانييه كه ميخوانيم انجام بديم .مثل vbLet مقدار دهي يه Property يا VbMethod واسه يه متد و ... .بعدي هم آرگومان هايي هستن كه به اون متد بايد ارسال بشن يا اگه بخواهيم Property رو عوض كنيم اون مقدار مورد نظرمون هست.اگه هم نيازي به آرگومان نباشه خالي ميزاريمش.مثلا با اين دستور : 

CallByName Command2, "setFocus", VbMethod

فوكوس به Command2 اختصاص داده ميشه يعني كاره Command2.SetFocus رو ميكنه.يا با اين دستور :

CallByName Command2, "Caption", VbLet, "MyCaption!"

مقدار Caption دكمه 2 برابر MyCaption ميشه 

9 ta 14 . Cbool ، Cbyte،CCur ،CDate ، CDbl،CDec توابع تبديل نوع هستن و نوع مقداري كه ميگيرن رو به نوعي كه از اسمشون پيداست تبديل ميكنن مثلا CBool مقداري گه بش داديم رو به نوع Boolean تبديل ميكنه.

chDir .15 دايركتويري پيشفرض رو براي هر درايو عوض ميكنه.مثلا (“chDir(“C:\windows دايركتوري پيشفرض درايو C رو C:\Windows ميكنه.بعد از اين كد اگه تابع (“CurDir(“C رو فراخواني كنين مقدار C:\windows (همون مقدار پيشفرض) برگردونده ميشه.در صورتي كه اگه chDir رو فراخواني نميكردين مقدار C:\windows\System32 رو برميگردوند.

chDrive .16 درايو پيشفرض رو تعيين ميكنه.در حالت عادي درايو پيشفرض همون درايويه كه برنامه داخلش اجرا شده.يعني وقتي تابع CurDir رو بدون دادن درايو فراخواني كنين سراغ درايوي ميره كه برنامه توش اجرا شده.مثلا براي من كه برنامم داره توي درايو D اجرا ميشه CurDir قبل از فراخواني (“:ChDrive(“C مقدار “D:\vb\myproj” رو برگردوند بعد از فراخواني مقدار C:\windows\System32 رو.

Choose .17 از يه ليست ارگومان با گرفتن Index يكيشون رو برميگردونه .مثلا

Choose(3, "Arg1", "Arg2", "Arg3", "Arg4", "Arg5")

مقدار “Arg3” رو برميگردونه.

Chr .18 يه كد اسكي ميگيره و كاراكتر مربوط به اون رو برميگردونه.مثلا Chr(65) = “A” 

Chr$ .19 مثل قبليه فقط مقداري كه برميگردونه از نوع رشته هستش(بهتره از اين به جاي قبلي استفاده كنين)

ChrB .20 مثل Chr فقط هميشه يه مقدار تك بايتي Single-Byte برميگردونه يعني طول مقداري كه برميگردونه از لحاظ بايت 1 هستش در صورتي كه براي تابع قبلي 2 مثلا توي حافظه : Chr(65) => 65 00 ولي 65 <=(ChrB(65 

ChrW .21 (و ChrW$) واسه كاراكتر هاي Unicode استفاده ميشه.يعني كد يه كاراكتر Unicode (فكر كنم بين 0 تا 2 بتوان 16) رو ميگيره و يه كاراكتر Unicode برميگردونه

CInt .22 تبديل نوع يه مقدار به Integer 

Circle .23 واسه رسم يه دايره ، بيضي ، قطاع يا كمان روي فرم هستش.مثلا 
Circle(20,20),10,vbred,0,3.141,2 يه كمان با مركز 20و20 و با شعاع 10 با رنگ قرمز از 0 تا پي رو طوري رسم ميكنه كه ارتفاعش 2 برابر عرضش هستش.براي رسم قطاع بايد ارگومان هاي 4 و 5 منفي باشن.واسه رسم داير بعد از vbred نياز نيست مقدار بزارين.واسه رسم بيضي(كامل) آرگومان هاي 4 و 5 رو مقدار ندين در عوض با تغيير دادن آرگومان 6 ميتونين بيضي هاي مختلفي رسم كنين.

Clng .24 واسه تغيير نوع يه مقدار به Long هستش

Cls .25 مثل دستور معادلش توي داس هستش.يعني فرم رو پاك ميكنه.

Command .26 و Command$ اون پارامتر هايي كه به برنامه ارسال شدن رو برميگردونن.مثلا وقتي برنامه رو با دستور 
Project1.exe “-hidden” باز كنيم Command برابر “hidden-” ميشه.

Cos .27 كسينويس زاويه اي كه –بر حسب راديان – بهش ميديم رو برميگردونه.

CreateObject .28با گرفتن ClassName يك شي رو درست ميكنه.مثلا 

Set fso = CreateObject("Scripting.FileSystemObject")

آبجكت معروف FSO رو دست ميكنه كه خيلي هم توي ASP كاربرد داره.حالا كه اين آبجكت رو ساختين ميتونين ازش استفاده كنين.مثلا واسه بدست آوردن پوشه temp :

MsgBox fso.getspecialfolder(2)

بعد از اينكه كارمون با شي تموم شد بايد حافظه اي كه بش اختصاص پيدا كرده رو آزاد كنيم : 

Set FSO = Nothing

CSng .29-30 و CStr واسه تبديل نوع يه مقدار به Single و String هستن.

CDir .31 و CDir$ هم دايركتوري پيشفرض رو برميگردونن(واسه توضيح بيشتر يه سر به chDir بزنين)

CVar .32 واسه تبديل نوع يه مقدار به Var هست

CVDate .33 واسه تبديل يه مقدار(رشته يا عدد) به نوع Date بكار ميره.

CVErr .34 يه شماره خطا يا يه آبجك از نوع ErrObject ميگيره و يه مقدار از نوع Error برميگردونه مثلا : “Cstr(CVErr(13)) = “Error 13
اما اينكه به چه درد ميخوره نميدونم.اينم توضيح : MSDN 

The CVErr function in Visual Basic 6.0 returned a Variant of the subtype Error that contained an error number

DateAdd .35 واسه كم يا زياد كردن يه مقدار از يه تاريخ يا ساعت بكار ميره.آرگومان اولي نوع مقداري كه ميخواهيم كم يا زياد كنيم هستش كه بايد يكي از اينا باشه : s ثانيه n دقيقه h ساعت w روزهاي هفته w هفته d روز(مثل 12) y روز از سال(مثل 224) m ماه q يك چهارم سال(فصل) yyyy سال.آرگومان دومي مقداريه كه ميخواهيم اضافه يا كم كنيم مثل 2 1 ... .آرگومان بعدي زمان يا تاريخ مورد نظره.
مثلا (()DateAdd(“m”,3,Date سه ماه به تاريخ فعلي(()Date) اضافه ميكنه و تاريخ جديد رو برميگردونه.

DateDiff .36 براي مقايسه كردن يكي از قسمت هاي 2 مقدار تاريخ هستش.ارگومان اول همون قسمت مورد نظره كه مثل تابع قبلي مقدار دهي ميشه.آرگومان دوم تاريخ1 بعدي تاريخ 2 هستش.مثلا (()DateDiff(“yyyy”,Date(),DateAdd(“yyyy”,3,Date مقدار 3 رو برميگردونه.

DatePart .37 يك قسمت از يك تاريخ ( يا زمان) رو برميگردونه.آرگومان اول مثل 2 تابع قبليه.دومي هم تاريخ مورد نظر.مثلا (()DatePart(“h”,Time الان براي من 17 رو برميگردونه (ساعت 5 بعد از ظهر).

DateSerial .39 روز و ماه و سال رو به عدد ميگيره و تاريخ رو برميگردونه.

DateValue .40 كار قبلي رو ميكنه فقط مقدار رو يكجا(از نوع رشته) ميگيره.مثلx (“DateValue(“2002/09/11 رو ميگيره و تاريخ رو از نوع Date برميگردونه.

Day .41 روز يك تاريخ رو برميگردونه.مثلا (Day(Now عدد 5 رو برميگردونه.

DDB .42 

DeleteSetting .43 تنظيماتي كه با تابع SaveSetting توي رجستري ذخيره شده (value ها)رو پاك ميكنه.واسه توضيح بيشتر به SaveSetting مراجع كنين.

Dir .44 فايل ها و فولدر هاي داخل يه فولدر(يا درايو) رو برميگردونه.كه ميشه با مشخص كردن Attribute فايل ها يا فولدر هاي خاص رو بدست آورد.آرگوماني كه ميگيره يه رشتس كه Path مورد نظر هستش كه ميشه توش از كاراكتر هايي مثل * و ؟ هم استفاده كرد.
مثلا ميخواميم همه ي فايل هاي با پسوند .sys رو كه توي درايو C هستن بدست بياريم.
براي اولين بار تابع Dir رو با دادن مقدار “C:\*.sys” فراخواني ميكنيم.مقدار برگشتيش اولين فايل با پسوند bat هست كه توي درايو C (فقط درايو C يعني شامل SubDirectory ها نميشه) پيدا ميكنه.براي بدست آوردن دومين فايل تابع رو بدون دادن مقدار بهش فراخواني ميكنيم ()Dir كه مقدار برگشتيش همون دومين فايل هستش.اين كار رو تا زماني كه مقدار برگشتي "" (رشته ي خالي) نباشه ادامه ميديم.كدش به اين صورت ميشه:

Private Sub CmdPrintDirs_Click()
Dim strPath as String,strDir as String
strPath = "C:\*.sys"
strDir = Dir(strPath)
Do
Print strDir
strDir = Dir()
Loop While strDir <> ""
End Sub

البته اگه Attribute رو درست تعيين نكنين همه فولدر ها و فايل ها برگردونده نميشن.مثلا با قرار دادن اين مقدار : 
vbArchive Or vbDirectory Or vbHidden Or vbNormal Or vbReadOnly Or vbSystem
به جاي Attribute ميشه گفت همه فايل ها و فلدر ها (چه سيستم چه معمولي و...) برگردونده ميشن.براي بدست آوردن فقط Directory ها به اين صورت عمل كنين كه به Attribute ، vbDirectoy رو هم اضافه كنين. بعد از اينكه اسم دايركتوري ها رو گفتين باز هم با تابع GetAttr چك كنين كه اسمي كه برگردونده شده حتما Directory هستش :

Private Sub CmdPrintDirs_Click()
Dim strPath As String, strDir As String
strPath = "C:\"
strDir = Dir(strPath, vbDirectory)
Do
If (GetAttr(strPath & strDir) And vbDirectory) = vbDirectory Then
Print strDir
End If
strDir = Dir()
Loop While strDir <> ""
End Sub

اينو نگفتم كه اگه بعد از مسيري كه مشخص كردين اينجا (\:c) چيزي نگذارين همه فايل ها و فولدر هاش در نظر گرفته ميشن.

DoEvents .45 اين تابع رو وقتي دارين توي برنامتون از يك حلقه تكرار كه ممكنه تموم شدنش طول بكشه استفاده ميكنين توي حلقه فراخواني كنين.حالا چكار ميكنه؟
بطور عادي وقتي دارين توي يه حلقه تكرار(يا هر كدي!!) يكسري محاسبات رو انجام ميدين تا زماني كه حلقه تموم نشه برنامتون در مقابل Message هايي كه بش ارسال ميشه عكس العملي انجام نميده و همه عكس العمل ها رو بعد از تموم شدن حلقه انجام ميده و يا اگه شما توي حلقه يه كدمربوط به چاپ كردن يه رشته روي فرم رو نوشته باشين عمل چاپ شدن رو بعد از تمام شدن حلقه مشاهده ميكنين.به قولي تا زمان پايان حلقه برنامه هيچ Event ي انجام نميده(البته اين مساله 100 در 100 هم نيست).تابع DoEvents اين كار رو براتون ميكنه.اين دو كد رو تست كنين : 

Private Sub Command1_Click()
Dim i As Long
Do While i < 10000000
i = i + 1
If i < 20 Then List1.AddItem i
Loop
End Sub
Private Sub Command1_Click()
Dim i As Long
Do While i < 10000000
i = i + 1
If i < 20 Then List1.AddItem i
DoEvents
Loop
End Sub

وقتي دكمه رو توي كد اول فشار ميدين تا زماني كه حلقه تموم نشده نميتونين اعضاي اضافه شده رو توي ليست باكس ببينين يا فرم رو حركت بدين.در صورتي كه در كد دوم اين طور نيست.

46. Environ (و Environ$) اين تابع با گرفتن عدد ها(اينجا index ها) ي بيشتر از 0 و يا رشته ها اطلاعات خاصي از سيستم مثل دايركتوري ويندوز Program Files ، Temp و يا UserName يا تعداد پردازشگر ها و ... رو برميگردونه.با دادن عدد هاي مختلف از 1 به بالا مقدار هاي مختلفش رو ميتونين ببينين.رشته هايي رو هم ميگيره مثل WinDir يا OS يا SystemDrive يا ... كه اين رشته ها رو با استفاده از اعداد ميتونين بدست بيارين :

Private Sub Command1_Click()
Dim strEv As String, i As Integer
i = 1
Do
strEv = Environ(i)
Print strEv
i = i + 1
Loop While strEv <> ""
End Sub

EOF .47 براي كار با فايل هاست كه با دادن شماره اي كه باهاش فايل رو باز كردين ميتونين بفهمين به آخر فايل رسيدين يا نه.

Err .48 آبجكتيه كه اطلاعات مربوط به آخرين خطايي(منظور Runtime Error) كه توي كد اتفاق افتاده رو نگه ميداده.مثلا :
Err.Number شماره خطا Err.Clear پاك كردن خطا (همه اطلاعات در مورد آخرين حذف ميشه و فرض بر اين ميشه كه خطايي اتفاق نيفتاده باشه) Err.Description توضيح خطا Err.Source منبع خطا.Err.Raise هم يه خطا توليد ميكنه!! 

Error .49 اگه اين تابع رو برابر يه مقدار قرار نداره باشين كار Err.Raise رو ميكنه با اين فرق كه فقط شماره خطا رو ميگيره(به تعداد آرگومان هايي كه ميگيرن توجه كنين) (در اين حالت ميشه گفت اصلا تابع نيست!) در غير اين صورت توضيح خطايي كه توليد كرده رو هم برميگردونه

Error$ .50 فقط حالت دوم Error هستش

Exp .51 معادلش توي رياضي e x

FileAttr .52 با گرفتن شماره اي كه فايل باش باز شده Attribute هاش رو برميگردونه.مثلا : 

Private Sub Command1_Click()
Open "C:\io.sys" For Random As #1
If FileAttr(1) And vbSystem Then
MsgBox "This is a Syetem file!"
End If
Close #1
End Sub

FileCopy .53 واسه كپي كردن فايل هستش كه آرگومان اولي آدرس فايل مبدا و بعدي مقصده.اگه فايل مقصد وجود داشته باشه عمل كپي انجام نميشه.

FileDateTime آدرس يه فايل رو ميگيره و زمان آخرين ويرايش يا زماني كه درست شده رو برميگردونه.

FileLen .54 آدرس يه فايل رو ميگيره و طولش رو برميگردونه.(به بايت)

Fix .55 يه چيزي شبيه تابع براكت توي رياضي هستش با اين فرض كه اعداد منفي رو رو به بالا گرد ميكنه .مثلا: 

Fix(2.1) = 2 و Fix(-2.1) = -2

Filter .56 يه آرايه رشته اي ميگيره و آرايه ي جديدي رو برميگردونه به طوري كه اون آرايه شامل عضو هايي از آرايه ي اول ميشه كه يك رشته ي خاص رو دارا هستن يا دارا نيستن.(تابع 2 حالت داره).آرگومان اول آرايه مورد نظره.دومي رشته ي مورد نظره.سومي اگه False باشه اون عضو هايي كه شامل رشته نيستن انتخاب ميشن و برگردونده ميشن و اگه True باشه عضو هايي كه شامل رشته هستن.بعدي هم نوع مقايسه هست كه توي توضيح تابع InStr درموردش توضيح دادم.اونجا رو ببينين.
مثلا اين آرايه رو تصور كنين :

Dim MainArr(3) As String
MainArr(0) = “Visual Basic”
MainArr(1) = “Visual C++”
MainArr(2) = “W32 Assembly”
MainArr(3) = “Java Script”

حالا ما ميخوايم همه ي اون عضو هايي از MainArr كه كلمه ي Visual داخلشون نيست رو توي يك آرايه ديگه ذخيره كنيم :

Dim NewArr() As String
NewArr = Filter(MainArr,”Visual”,False)

با اين كد عضو هاي آرايه NewArr ، W32 Assembly و Java Script ميشن.اگه به جاي False از True استفاده ميكردين عضو ها Visual Basic و++ Visual C ميشدن.

Format .57 (و Format$)يه تابع پر كاربرده كه كارهاي زيادي در رابطه با رشته ها ميكنه و اگه بخوام همشونو بگم به اندازه اي كه تاحالا نوشتم بايد بنويسم!!در كل يه رشته به عنوان آرگومان اول ميگيره.دومي هم يه رشتس كه Style يا حالت يا همون فرمت اون رشته رو تعيين ميكنه .مثلا ميخواهين با داشتن ثانيه – دقيقه و ساعت،زمان رو با فرمت درست بدست بيارين : 

MsgBox (Format("125802", "00:00:00"))

و كار هاي زياد ديگه اي ميشه باش كرد كه بيشتر از اين حال نداريم توضيح بدم.خودتون دنبالش برين ميفهمين... .

FormatCurrency .58 اين تابع يه عدد رو به نوع Currency (نوعي كه توي ويبي براي نگه داشتن مقدار پول بكار ميره) با فرمت دلخواه تبديل ميكنه.آرگومان اول عدد مورد نظره.آرگومان هاي بعدي اختياري هستن: دومي تعداد صفرهايي كه بعد از عدد و نقطه ي آخر اون نشون داده ميشن هستش كه بطور پيشفرض 1-(Default) هستش و براي من 2 تا نشون ميده مثلا 100 رو 100.00 نشون ميده.

آرگومان بعدي مشخص ميكنه كه براي عدد هاي كسري .0 قبل از عدد رو نشون بده يا نه.بعدي مشخص ميكنه كه براي عدد هاي منفي از پرانتز استفاده بشه يا نه.بعدي مشخص ميكنه كه عدد هارو (سه تا سه تا) با كاما گروه بندي كنه يا نه.مثلا 100000 رو 10,000 نشون بده يا نه.يه مثال كلي : FormatCurrency(10000,3,vbTrue,vbTrue,vbTrue)مقدار 10,000.000$ رو برميگردونه.
اين رو هم بگم كه آرگومان هاي 3 ، 4 و 5 به غير از vbTrue و vbFalse مقدار vbUseDefault رو هم ميتونن بگيرن كه اين مقدار به مقدار بيشفرض كه به تنظيم هاي ويندوز بستگي داره ارجاع ميكنه.

FormatDateTime .59 اين تابع واسه تغيير فرمت زمان و تاريخ به كار ميره.آرگومان اول تاريخ يا زمان مورد نظره .دومي هم فرمت مورد نظر.مقدار بازگشتي با توجه به نوع فرمت و نوع مقداري كه بش داديم فرق ميكنه : 

FormatDateTime(Now(), vbGeneralDate) = 10/5/2005 10:49:07 PM

FormatNumber .60 مثل FormatCurreny هستش با 2 تا فرق.يكي اينكه علامت دلار ($) كنار عدد نميگذاره. يكي ديگه اينكه اگه مقدار منفي باشه و آرگومان 3 False ، علامت منفي رو كنار عدد نشون ميده.

FormatPercent .61 مثل قبليه هست با اين فرق كه درصد عددي كه بهش ميديم رو حساب ميكنه.مثلا :

FormatPercent(-10 / 100, 4, vbFalse, vbFalse, vbFalse) = -10.0000%

FreeFile .62 اولين شماره اي كه براي باز كردن فايل ها آماده باشه (آزاد باشه) رو برميگردونه.حداكثر هم 255 فايل ميتونن باز باشن.

FV .63 

GetAllSettings .64 اين تابع همه ي تنظيماتي كه توي Section و appName ي كه بش ميديم ذخيره شده رو به صورت يه آرايه 2 بعدي برميگردونه.(بهتره اول SaveSetting رو ببينين) ما اين مقدار رو توي يه متغير از نوع Variant قرار ميديم.به طوري كه (v(0,0 اسم اولين تنظيممون(يا همون اسم Value توي رجيستري يا همون Key توي تابع SaveSetting) هستش و (v(0,1 مقدار اون تنظيم.به همين ترتيب v(1,0) هم اسم دومين تنظيم ميشه... .

GetAttr .65 هم با گرفتن آدرس فايل Attribute هاي اون فايل رو برميگردونه.

GetObject .66 شبيه CreateObject كار ميكنه با اين فرق كه نام فايل رو هم ميتونه بگيره و معمولا براي ارتباط با برنامه هايي بكار ميره كه از قبل اجرا شدن ولي CreateObject يه رابط به instance جديد اون Application ايجاد ميكنه و وقتي استفاده ميشه كه نميدونيم برنامه از قبل اجرا شده يا نه.مثلا ميخواهيم يه شي word رو با CreateObject درست كنيم :

Private Sub Command1_Click()
Dim wApp As Object,wDoc as Object
Set wApp = CreateObject("word.application")
Set wDoc = wApp.Documents.Add
wApp.Selection.Font.Name = "verdana"
wApp.Selection.TypeText "Hello!!"
wDoc.SaveAs "D:\w1.doc"
wDoc.Close
Set wDoc = Nothing
Set wApp = Nothing
End Sub

با اين كد فايل w1.doc توي درايو ِD ساخته ميشه كه محتويايش متن Hello!! هستش.به جاي CreateObject ميشد از GetObject به اين صورت استفاده كرد : 

Set wApp = GetObject(, "word.application")

چون ميخواستيم فايل جديدي ايجاد كنيم نياز به دادن آدرس فايل نبود واسه همين فقط آرگومان دوم رو مقدار دهي كرديم.
حالا ميخواهيم توي فايلي كه درست كرديم يه متن تايپ كنيم.اول اون فايل رو با word باز كنين .اينبار از GetObject استفاده ميكنيم :

Private Sub Command1_Click()
Dim wApp As Object
Set wApp = CreateObject("D:\w1.doc").Application
wApp.Documents(1).Application.Selection.TypeText " how are you ?"
Set wApp = Nothing
End Sub

به اين صورت ما تونستيم با GetObject با برنامه Word ارتباط برقرار كنيم.

GetSetting .67 با گرفتن appName و Section و Key ، اطلاعاتي رو كه با تابع SaveSetting توي رجيستري ذخيره شده رو برميگردونه(به توضيح SaveSetting توجه كنين) آرگومان چهارم هم مقداريه كه اگه اطلاعات مورد نظر توي رجيستري پيدا نشد تابع اون رو برميگردونه.

Hex .69 (و Hex$) هم با گرفتن يك عدد معادل اون رو به مبناي 16 برميگردونه مثلا Hex(255) = “FF” 

70. Hide فرم رو پنهان ميكنه و واسه نشون دادنش بايد از Show استفاده كنين (اين تابع ها هر دو عضو هاي Form هستن و اگه توي يه ماژول يا كلاس دارين كد مينويسين بايد اسم فرم مورد نظر رو هم بيارين مثلا ()Form1.Hide) 

71. Hour زمان رو ميگره و ساعت رو از اون استخراج ميكنه .مثلا Hour ("19:12:03") = 19

72. IIf يك If…Then…Else يك خطي هستش.آرگومان اول همون عبارتيه كه ميخواهيم درستيش رو بررسي كنيم.آرگومان دوم و سوم هم مقدار هاي بازگشتيه تابع هستش.اگه عبارتي كه به تابع داديم درست باشه آرگومان دوم و گرنه آرگومان سوم رو برميگردونه.مثلا 

IIf(2+2 = 4, "Yes", "No") = "Yes"

73. IMEStatus توي ويبي 6 وضعيت Input Method Editor رو برميگردونه كه فقط توي ويندوز هاي چيني و كره اي و ژاپني كاربرد داره.

74. InputBox يه Input Box يا همون Prompt رو باز ميكنه و يه ورودي از كاربر ميگيره.آرگومان اول اون متني هستش كه توي Prompt نشون داده ميشه و حتما بايد مقدار دهي بشه ولي آرگومان هاي بعدي اختياري هستن.
دومي Title يا همون عنوان پنجره Prompt هستش.سومي هم متنيه كه به طور پيشفرض توي TextBox ي كه توي InputBox هست نمايش داده ميشه.2 تا آرگومان بعدي هم مختصات پنجره InputBox هستن.آرگومان بعدي (HelpFile) فايل Help ي كه مربوط به اين InputBox هستش.بعدي هم Context اون موضوعيه كه ميخواهين نشون بدين.مقدار برگشتي تابع همون مقداريه كه كاربر وارد ميكنه اگر هم كاربر Cancel رو بزنه مقدار برگشتي يه رشته خاليه (vbNullString).

75. InStr براي جستجوي يك متن توي يك متن ديگه بكار ميره.آرگومان اول جاييه كه جستجو توي رشته از اونجا شروع ميشه. اگه 1 بگذارين جستجو از اولين كاراكتر شروع ميشه ميتونين هم مقداري به اين آرگومان ندين.دومي رشته ي مبدا هستش يعني رشته اي كه ميخواهين توش جستجو كنين.آرگومان بعدي رشته مقصد هست يعني اون متن ي كه ميخواهين جستجوش كنين.آرگومان بعدي هم نوع مقايسه هستش.اگه از vbBinaryCompare استفاده كنين بين حروف كوچك و بزرگ تفاوت گذاشته ميشه و اون ها مساوي حساب نميشن (Case Sensitive) اگه از vbTextCompare استفاده كنين حروف بزرگ و كوچك يكي حساب ميشن. vbDatabaseCompare هم مربوط به Access هستش و كاري بهش نداريم.مثلا InStr(1,”Visual Basic”,”b”,vbTextCompare) مقدار هشت رو برميگردونه در صورتي كه اگه از vbBinaryCompare استفاده كنين يا اصلا اين آرگومان رو مقدار دهي نكنين مقدار 0 نشون داده ميشه.يعني رشته ي مورد نظر پيدا نشد! يا مثلا اگه به جاي 1 از 9 استفاده كنين جستجو از حرف نهم يعني a شروع ميشه و چون حرف b بعد از a (منظور دومين a هستش كه بعد از b قرار داره) قرار نداره تابع b رو پيدا نميكنه و مقدار 0 رو برميگردونه.

اين رو هم بگم كه ويبي به طور پيشفرض Case Sensitive هستش و حروف بزرگ و كوچك مساوي نيستن يعني “VB” <> “Vb” اما اگه كد Option Compare Text رو اول كدها(بالاي فرم يا ماژول) بزارين اين حساسيت ويبي از بين ميره.

76. InStrB مثل قبليه با اين فرق كه واسه داد هاي بايتي كه توي يك رشته قرار گرفتن استفاده ميشه و محل بايت (Byte Position)رو برميگردونه.مثلا چون يه كاراكتر توي رشته ي معمولي 2 بايت حساب ميشه (از لحاظ طول رشته اي 1 هست اما از لحاظ طول بايت 2) مقدار (”InStrB(1,”Visual Basic”,”B برابر 15 هستش.

77. InStrRev مثل InStr هستش با اين فرق كه جستجو رو از آخرين كاراكتر رشته ي كه بش ديديم شروع ميكنه و به اولين كاراكتر ميرسه.(برعكس قبلي)آرگومان اول رشته مبدا دومي رشته ي مقصد و سومي هم شروع جستجو هست كه به طور پيشفرض -1 هستش يعني جستجو از آخرين كاراكتر.آرگومان بعدي هم مثل آرگومان آخر InStr.مثلا (”InStrRev(“VisualBasic”,”a برابر 8 هستش نه 5.ولي ( InStrRev("VisualBasic", "a", 7 برابر 5 هستش چون جستجو از حرف B شروع ميشه و به سمت اولين كاراكتر ميره.

78. Int براكت يك عدد رو برميگردونه.مثلا Int(2.2) = 2 و Int(-2.2) = -3 

79. IPmt 

80. IRR

81. IsArray هم از اسمش پيداست.يك متغير ميگيره و مشخص ميكنه آرايه هست يا نه.

82. IsDate هم مثل قبليه فقط براي تاريخ يا زمان.

83. IsEmpty براي اينه كه چك كنيم يك مقدار اعلان شده يا نه.مثلا 

Dim x as long
Debug.Print IsEmpty(x) ‘False
Debug.Print IsEmpty(y) ‘True
x = Empty
Debug.Print IsEmpty(x) ‘True

84. IsError هم واسه اينه كه چك كنيم يه مقدار از نوع Error هستش يه يا نه.مثلا IsError(Err) = True يا IsError(CVErr(0))= True

85. IsMissing اين تابع براي وقتي به كار ميره كه شما توي يه Function يا Sub كه آرگومان اختياري(Optional)از نوع Variant داره ميخواهين ببينين كه اون آرگومان مقدار دهي شده يا نه.اين مثال رو ببينين:

Private Sub Command1_Click()
MsgBox TestIsMissingFunc()
MsgBox TestIsMissingFunc(2)
MsgBox TestIsMissingFunc(“A”)
End Sub 

Private Function TestIsMissingFunc(Optional testArg As Variant) As String
If IsMissing(testArg) Then
TestIsMissingFunc = “You are not passed any value!”
Else
TestIsMissingFunc = “You are passed “ & CStr(testArg)
End If
End Function

مقدارهايي كه با پيغام نشون داده ميشن به اين صورته :

You are not passed any value
You are passed 2
Your are passed A

يعني اگه اون پارامتر اختياري مقدار دهي نشده باشه تابع IsMissing مقدار True رو برميگردونه.اگه پارامتري از نوع غير از Variant بهش بدين همواره مقدار False رو برميگردونه.

86. IsNull واسه اينه كه بفهميم يك مقدارNull هست يا نه. توجه كنين كه Null با خالي بودن يه رشته يا 0 بودن يه عدد فرق داره.مثلا 

Deug.Print IsNull(“”) ‘false
Dim S As String
Debug.Print IsNull(S) ‘false
S = “” 
Debug.Print IsNull(S) ‘false
S = Null
Debug.Print IsNull(S) ‘True

87. IsNumeric چك ميكنه كه يه مقدار عدد هست يا نه .البته كاري به نوعش نداره و محتوياتش رو بررسي ميكنه مثلا:

Debug.Print IsNumeric(2) ‘true
Debug.Print IsNumeric("2.2") ‘true
Dim v As Variant
v = "$2.2"
Debug.Print IsNumeric(v) ‘true
v = “vb6”
Debug.Print IsNumeric(v) ‘false

88. IsObject هم چك ميكنه يه مقدار از نوع Object هستش يا نه مثلا :

Private Sub Command1_Click()
Debug.Print IsObject(Command1) ‘true
Debug.Print IsObject(Err) ‘true
Dim Obj As Object, v As Variant
Debug.Print IsObject(Obj) ‘true
Debug.Print IsObject(v) ‘false
Set v = Err
Debug.Print IsObject(v) ‘true
Debug.Print IsObject("s") ‘false
End Sub

89. Join يه آرايه از نوع رشته ميگيره و همه مقدار هاي عضو هاي آرايه رو به هم متصل ميكنه و به صورت يه متغير از نوع رشته بيرون ميده.بين هر كدوم از String ها رو هم با كاراكتر دلخواهي كه بهش ميديم قرار ميده(بطور پيشفرض فاصله)
مثلا :

Private Sub Command1_Click()
Dim words(3)
words(0) = "Learning"
words(1) = "VB"
words(2) = "is"
words(3) = "easy"
Debug.Print Join(words, "_") ‘ Learning_VB_is_Easy
End Sub

90. Kill آدرس يه فايل رو ميگيره و اون رو پاك ميكنه.

91. LCase (و LCase$) (مخففLower Case)يك رشته رو ميگيره و همه حروف رو به حروف كوچك تبديل ميكنه و رشته جديد رو برميگردونه مثلا ”LCase(“Visual”)=”visual 

92. Left (وLeft$)يك رشته رو ميگيره و به تعداد دلخواه كاراكتر از سمت چپ جدا ميكنه مثلا :

Left("Visual",2) = "Vi"

93. LeftB (و LeftB$) يك رشته رو ميگيره و به تعداد دلخواه بايت از سمت چپ جدا ميكنه.مثلا

LeftB("Visual", 2)="V"

چون هر كاراكتر 2 بايت حساب ميشه.

94. Len يه مقدار ميگيره و طولش رو برميگردونه.براي رشته تعداد كاراكتر ها رو . براي متغير عددي هم تعداد بايتي كه متغيري كه عدد رو شامل ميشه اشغال كرده رو برميگردونه نه تعداد ارقام رو(مگر اينكه قبلش عدد رو به رشته تبديل كنين) مثلا : 

Debug.Print Len("visual") ‘8
Dim n As Integer: n = 245 
Debug.Print Len(n) ‘2
Debug.Print Len(CStr(n)) ‘3 

Dim V As Variant 
Debug.Print Len(V) ‘0
Set V = Command1
Debug.Print Len(V) ‘4

95. LenB تعداد بايتي كه يه متغير(يا يك مقدار) اشغال كرده رو برميگردونه.مثلا :

Debug.Print LenB("visual") ‘12
Dim n As Integer: n = 245
Debug.Print LenB(n) ‘2
Debug.Print LenB(CStr(n)) ‘6
Dim V As Variant 
Debug.Print LenB(V) ‘0
Set V = Command1
Debug.Print LenB(V) ‘8

96. Line واسه رسم يه خط يا مستطيل روي فرم بكار ميره.آرگومان اول مختصات نقطه شروع و پايان خط و يا مختصات بالا سمت چپ و پايين سمت راست مستطيل هستش.بعدي رنگ خط و مستطيل هستش.بعدي اگه B باشه مستطيل رسم ميشه.اگه BF باشه مستطيل توپر رسم ميشه.اگه هم مقدار دهي نكنينش خط رسم ميشه.مثلا :

Line (0, 0)-(300, 300), vbRed, BF ‘مستطيل توپر قرمز
Line (0, 0)-(300, 300), vbRed ‘خط قرمز

97. Load يه فرم يا Control رو توي حافظه Load ميكنه.

98. LoadPicture يك عكس رو توي حافظه Load ميكنه و مشخصات اون رو توي يك متغير از نوع IPictureDisp برميگردونه.اگه آرگومان اول رشته ي خالي باشه تابع يه عكس خالي برميگردونه.آرگومان هاي بعدي فقط براي فايل هاي آيكن و كرسر هستن:دومي سايز هستش.كه يكي از مقدار هاي زير ميتونه باشه :
vbLPLarge كه اندازه آيكن يا كرسر برابر اندازه آيكن يا كرسر بزرگ پيشفرض سيستم ميشه.
vbLPSmall كه اندازه آيكن يا كرسر برابر اندازه آيكن يا كرسر كوچك پيشفرض سيستم ميشه.
vbLPSmallShell اندازه ايه كه توي قسمت Caption Buttons size setting توي قسمت AppearRance مربوط بهDisplay propertiesتنظيم شده.
vbLPLargShell اندازه ايه كه توي قسمت Icon size setting توي قسمت AppearRance مربوط بهDisplay properties تنظيم شده.
vbLPCustom اندازه بر اساس 2 تا آرگومان x و y تنظيم ميشه.

آرگومان بعدي (ColorDepth) عمق رنگ هستش كه يكي از مقدار هاي زير ميتونه باشه :
vbLPDefault مقدار پيشفرض هستش.

vbLPMonochromeدو رنگ
vbLPVGAColorشونزده رنگ
vbLPColor دويست و پنجاه وشش رنگ

2 تا آرگومان بعدي هم طول و عرض هستن.كه فقط براي وقتي كه آرگومان size برابر vbLPCustom باشه استفاده دارن.
يكباره ديگه هم بگم كه آرگومان هاي 2 به بعد اين تابع فقط واسه فايل هاي آيكون و كرسر هستن.

99. LoadResData اآيدي يك Resouce و نوع اون رو ميگيره و اطلاعاتش رو برميگردونه.مثلا (”LoadResData(101,”CUSTOM
واسه ويرايش Resource هاي برنامه از منوي Add-Ins گزينه ي Add-In Manager رو انتخاب كنين.اونجا توي ليست روي VB6 Resource Editor كليك كنين تا جلوش متن Loaded بياد.OK كنين تا پنجره بسته شه.حالا از منوي Tools گزينه ي Resouce Editor رو انتخاب كنين.توي پنجره اي كه باز ميشه ميتونين Resource هاي مختلف براي برنامتون بسازين...

100. LoadResPicture مثل قبليه منتها واسه Load كردن Picture هستش.چه Icon چه Bitmap و چه Cursor . آرگومان اوليش آيدي Resource هستش .دومي هم يكي از سه نوعي كه گفتم يعني vbResBitmap ، vbResIcon و vbRescCursor .مقداري برگشتيش هم از نوع Picture هستش(IPictureDisp)

101. LoadResString هم واسه لود كردن يه Resource رشته هستش.فقط هم آيدي رو نياز داره.

102. Loc با گرفتن شماره فايل باز شده براي حالت Randomشماره آخرين ركوردي كه نوشته يا خونده شده ، براي حالت Binary مكان آخرين بايتي از فايل(Position) كه خونده يا نوشته شده و براي ترتيبي مكان بايت فعلي در فايل تقسيم بر 128 رو برميگردونه.

103. LOF با گرفتن شماره فايل باز شده طول اون رو برميگردونه.

104. Log تابع لگاريتم هستش البته در مبناي Ln .براي بدست آوردن لگاريتم يك عدد توي مبناي دلخواه از اين فرمول استفاده كنين :

Log(x) / Log(n)

مثلا لگاريتم 8 در مبناي 2 : 

Debug.Print Log(8)/Log(2) ‘3

105. LTrim (و LTrim$) يه رشته ميگيره و هرچي Space سمت چپ رشته باشه رو حذف ميكنه و رشته ي جديد رو برميگردونه مثلا :

Debug.Print “ Visual Basic “ ‘ = “Visual Basic “ 

106. Mid (و$Mid) واسه جدا كردن يك قسمت از يك رشته هستش.آرگومان اول رشته ي مورد نظره.دومي عددي كه جدا كردن از اونجا شروع ميشه و سومي هم طول قسمتيه كه ميخواهيم جدا كنيم و اگه مقدار دهي نكنيمش تابع تا آخر رشته رو در نظر ميگيره:

Debug.Print Mid(“Visual Basic”,3,2) ‘su
Debug.Print Mid(“Visual Basic”,3) ‘sual Basic

107. MidB (و MidB$) مثل قبليه فقط اطلاعات رو بايت به بايت در نظر ميگيره و جدا ميكنه (نه كاراكتر به كاراكتر).فرقش با Mid مثل فرق InStr با InStrB هستش.توي قسمت InStrB بيشتر در اين باره توضيح دادم.

108. Minute يه زمان رو ميگيره دقيقه رو ازش جدا ميكنه.مثلا (”Minute(“02:15:00برابر 15 هستش.

109. MIRR 

110. MkDir واسه درست كردن يه Folder به كار ميره كه اگه از قبل وجود داشته باشه تابع Error ميده.

111. Month يه تاريخ ميگيره و ماه رو از اون استخراج ميكنه.(به طور عددي البته) مثلا Month(Date()) = 5

112. MonthName عدد يك ماه رو ميگيره (1 تا 12) و اسم اون ماه رو برميگردونه.اگه آرگومان دومش True باشه اسم رو به صورت خلاصه برميگردونه.مثلا MonthName(10) = Octobr و MonthName(10,True) = Oct

113. Move واسه حركت دادن فرم توي صفحه بكار ميره آرگوما هاش هم مشخص هستن.

114. MsgBox هم يه پيغام توي صفحه نشون ميده.آرگومان اول اجباريه و متن اون پيغام هستش.آرگومان بعدي هم مربوط به Options نشون دادن پيغام مثلا نوع آيكن(vbCritical vbExclamation vbInformation vbQuestion) نوع دكمه ها (vbOKCancel vbYesNoCancel vbOKOnly vbAbortRetryIgnore vbRetryCancel vbYesNo vbMsgBoxHelpButton) دكمه هاي پيشفرض (كه Focus بشون داده ميشه)

تغيير vbMsgBoxRight vbMsgBoxRtlReading) Alignment) نحوه ي نمايش توي صفحه (vbSystemModal vbApplicationModal) هستش.
آرگومان بعدي عنوان پيغام هستش.بعدي فايل Help مربوط به اين پيغام.بعدي هم Context موضوع مورد نظره(توي فايل Help)
مقدار برگشتي تابع هم با توجه به دكمه اي كه كاربر فشار داده يكي از مقدار هاي vbAbort vbRetry vbIgnore vbCancel vbOK vbYes vbNo هستش.

115. NPer 

116. NPV 

117. Oct (وOct$ ) عدد رو به مبناي هشت ميبره مثلا Oct(8) = 10

118. OLEDrag واسه شروع عمل OLE Drag (مثلا مثل وقتي كه يكسري فايل رو يك فولد به فولدر ديگه ميكشين) براي فرم بكار ميره.اگه قبلش از اسم يه شيي ديگه مثلا يه ليست باكس استفاده كرده باشين –مسلما- عمل واسه اون شي انجام ميشه منظورم اينه كه اين فقط مختص فرم نيست.2 تا فرم بسازين.توي دومي 1 تكست باكس درست كنين خصوصيت OLEDropMode مربوط به TextBox رو Manual قرار بدين.توي فرم اول كد زير رو وارد كنين :

Private Sub Form_Load()
Form2.Show
End Sub 

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
OLEDrag
End Sub

Private Sub Form_OLECompleteDrag(Effect As Long)
MsgBox "Drag completed!"
End Sub

Private Sub Form_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
AllowedEffects = vbDropEffectMove
Data.SetData Me.Caption
End Sub

و توي دومي :

Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Data.GetFormat(vbCFText) Then
Text1.Text = Data.GetData(vbCFText)
End If
End Sub

وقتي فرم يك Load ميشه فرم 2 هم نشون داده ميشه.حالا اگه موس رو روي فرم 1 فشار بدين OLEDrag براي فرم فراخواني ميشه و رويداد OLECompleteDrag اتفاق ميفته.طبق كد حالت قابل قبول فقط vbDropEffect)Move) در نظر گرفته ميشه.و اطلاعاتي هم كه بايد از فرم به جاي مقصد انتقال پيدا كنه برابر با متن فرم ميشه كه هر چيزه ديگه اي با فرمت ديگه اي مثل يه فايل هم ميتونه باشه.وقتي بدون اينكه دكمه ي موس رو رها كنين اون رو روي TextBox فرم دوم ببرين رويداد OLEDragDrop براي TextBox اتفاق ميفته.بعد چك ميشه كه اگه فرمت اطلاعات متني بود اطلاعات توي TextBox نشون داده بشه.بعد از رها كردن دكمه ي موس رويداد OLECompleteDrag (تومو شده عمل كشيدن) براي فرم اتفاق ميفته و يك پيغام نشون داده ميشه.

119. PaintPicture واسه رسم كردن يه عكس روي فرم هست.اين تابع مال PictureBox هم هست.
آرگومان اول عكسيه كه بايد رسم بشه كه ميتونه عكسي باشه كه با LoadPicture لود شده.يا عكس توي يك PictureBox(مثلا Picture1.Picture) .آرگومان دوم و سوم مختصات بالا سمت چپ جايي هستن كه قرار عكس اونجا رسم بشه.مثلا اگه 0و0 باشن عكس كاملا توي بالا و سمت چپ فرم قرار ميگيره يا اگه 100و20 باشن عكس با سمت چپ فرم 100 و با بالاي فرم 20 تا (واحدش بر اساس واحد فرم هستش بطور پيشفرض Twip ) آرگومان هاي بعدي طول و عرض عكسي هستن كه قرار چاپ بشه.اگه مقدار دهيشون نكنين عكس با اندازه ي اصليش چاپ ميشه.دو تا آرگومان بعدي جايي از عكس هستن كه عمل رسم شدن بايد از اونجا شروع بشه كه اگه مثلا 100و100 باشن همه ي عكس روي فرم رسم نميشه و از عمل رسم از بالا و سمت چپ فرم با مختصات 100و100 شروع ميشه . دو تا آرگومان بعدي هم مثل قبلي واسه جدا كردن قسمتي از عكس هستن.اين ها طول و عرضي از عكس رو مشخص ميكنن كه قرار رسم بشه.مثل قبلي ها اگه مقدار دهيشون نكنين (با توجه به 2 تا آرگومان قبلي) همه ي قسمت ها در نظر گرفته ميشه.آرگومان آخر هم نحوه ي رسم هست(از نظر رنگ) كه ميتونه يكي از مقدار هاي زير باشه : 
vbSrcCopy عكس جديد رو كاملا جايگزين عكس قبلي ميكنه يعني اگه از قبل توي فرم عكسي وجود داشته باشه هيچ 
اثري ازش نميمونه.
vbSrcAnd عكس مبدا و مقصد(در صورت وجود) رو AND ميكنه (دو عكس ادغام ميشن)
vbNotSrcErase عكس و مبدا و مقصد(در صورت وجود) رو OR ميكنه و نتيجه رو Invert ميكنه.
vbSrcPaint عكس مبدا و مقصد(در صورت وجود) رو OR ميكنه.
vbDstInvert عكس مقصد (در صورت وجود) رو Invert ميكنه.
vbSrcInvert عكس مبدا و مقصد(در صورت وجود) رو XOR ميكنه.
vbSrcErase عكس مقصد(در صورت وجود) رو Invert (معكوس) ميكنه و با عكس مبدا AND ميكنه.
vbNotSrcCopy عكس مبدا رو Invert ميكنه و كاملا جايگزين عكس مقصد ميكنه.

براي اينكه بهتر متوجه بشين همه رو امتحان كنين.

120. Partition چهار تا عدد به عنوان شروع(Start) ،پايان(Stop) فاصله(Intrerval) و عدد مورد نظر(Number) ميگيره و يك سيري از اعداد به صورت 

Start + (n-1) * Interval تا Start + n * Interval -1 …………… Start + (n-1) * Interval تا Stop

تا رسيدن به مقدار Stop ميسازه.مثلا اگه Start=1 , Stop=110 ,Interval=20 اينطوري ميشه :

1…20 21…40 41…60 61…80 81…100 101…110

حالا تابع عددي كه بش داديم(Number) رو بررسي ميكنه كه جزو كدوم يك از اين بازه ها(بازه هاي بسته) هستش.جزو هر كدوم كه بود تابع يه رشته به صورت بالاترين عضو : پايين ترين عضو برميگردونه.مثلا اگه عدد 52 يا 60 باشه تابع مقدار “41:60” رو برميگردونه.اگه عددي كه بش ميديم كمتر از كمترين عضو سري باشه تابع مقدار “ : [Start -1] ” رو برميگردونه مثلا اينجا براي 3- تابع مقدار “ : 0 ” رو برميگردونه و اگه بزرگ تر باشه “[Stop + 1] : ” رو برميگردونه.

121. Pmt 

122. Point مختصات يه نقطه از فرم رو ميگيره و رنگ اون نقطه(بر اساس RGB:Red-Green-Blue) رو برميگردونه.

123. PopupMenu يه Popup Menu روي فرم نشون ميده.آرگومان اولي اسم اون منو هست كه اونو توي محيط ويبي ساختين.
دومي Flags يا ميشه گفت Options مربوط به نحوه ي نمايش منو هستش كه يكي (يا چند تا) از اينها ميتونه باشه :

vbPopupMenuRightAlign منو رو سمت راست مختصاتي كه بهش دادين نمايش ميده
vbPopupMenuLeftAlign منو رو سمت چپ مختصاتي كه بهش دادين نمايش ميده(پيشفرض)
vbPopupMenuCenterAlign منو رو وسط مختصاتي كه بهش دادين نمايش ميده
vbPopupMenuLeftButton منو فقط دكمه چپ موس رو تشخيص ميده.(اگه روي گزينه هاش راست كليك كنين اتفاقي نميفته) (پيشفرض)
vbPopupMenuRightButton منو دكمه چپ و راست موس رو تشخيص ميده.

دو تا آرگومان بعدي مختصات جاييه كه ميخواين منو نمايش داده بشه.آرگومان آخر هم گزينه ي پيشفرضيه كه توي گزينه هاي منو كلفت تر از بقيه نشون داده ميشه .واسه اين آرگومام هم بايد اسم منو رو قرار بدين.مثلا اگه منوي شما اينطوري باشه:

Edit (mnuEdit)
Copy (mnuCopy)
Cut (mnuCut)
Delete (mnuDel)
Paste (mnuPaste)

براي نمايش منوي Edit براي وقتي كه روي TextBox كليك ميشه :

Private Sub TextBox1_Click()
Call PopUpMenu(mnuEdit, vbPopupMenuRightAlign Or vbPopupMenuRightButton,,,mnuCopy)
End Sub

كه در اين حالت منوي كپي پيشفرض ميشه.

124. PPmt

125. PrintForm صفحه ي فرمي كه توش تابع فراخواني شده رو واسه چاپ به پرينتر ميبره.

126. PSet واسه رسم نقطه با رنگ داخواه روي فرم بكار ميره.آرگومان اول مختصات نقطه.بعدي هم رنگ هستش مثلا PSet (100,100),vbRed يا Form1.Pset… يا Picture1.PSet..

127. PV 

128. QBColor يك عدد بين 0 تا 15 ميگيره و بر اساس اون ها يك رنگ از نوع RGB برميگردونه.
0 براي سياه 1 براي آبي تيره 2 براي سبز تيره 3 براي فسفري تيره 4 براي قرمز تيره 5 براي بنفش 6 براي زرد 7 براي سفيد تيره!(خاكستري كم رنگ) 8 براي خاكستري 9 براي آبي 10 براي سبز .11 براي فسفري 12 براي قرمز 13 براي صورتي 14 براي زرد 15 براي سفيد. مثلا (Form.BackColor = QBColor(9) ‘=vbRed = RGB(255,0,0 

129. Randomize واسه اين به كار ميره كه نتايج تابع Rnd() كه واسه بدست آوردن اعداد تصادفي بكار ميره هر دفعه تكراري نباشه.مثلا اين كد رو در نظر بگيرين :

Debug.Print Rnd()
Debug.Print Rnd()
Debug.Print Rnd()
‘Prints :
0.7055475 
0.533424 
0.5795186

توي يه برنامه اي كه با اين كد من درست كردم هر دفعه كه برنامه اجرا ميشد همين مقدار ها بدست ميومد.واسه جلوگيري از اين كار از Randomize استفاده ميكنيم. 

130. Rate 

131. Refresh فرم( يا هر آبجك ديگه اي كه متد مربوط بهش باشه) رو Refresh ميكنه.يعني اون شي دوباره رسم ميشه.

132. Replace توي رشته اي كه بهش ميديم يك رشته رو جايگزين يه رشته ي ديگه ميكنه و رشته ي جديد رو برميگردونه.آرگومان اول رشته ي اصليه.دومي رشته اي هستش كه بايد پيدا بشه و رشته ي جديد جايگزينش بشه.رشته ي بعدي رشته ي جديد هستش كه قراره جايگزين بشه.آرگومان بعدي هم جايي هستش كه عمل جايگزيني بايد از اونجا شروع بشه.بعدي حداكثر تعداد جايگزينيه .بعدي هم نوع مقايسه هستش كه توي توضيح تابع InStr در موردش گفتم.مثلا :
Debug.Print Replace(“It’s Visual Basic!”,”a”,”XX”) ‘ It’s VisuXXl BXXsic!
Debug.Print Replace(“It’s Visual Basic!”,”a”,”XX”,7) ‘ It’s Visual BXXsic!
Debug.Print Replace(“It’s Visual Basic!”,”a”,”XX”,,1) ‘ It’s VisuXXl Basic!
Debug.Print Replace(“It’s Visual Basic!”,”A”,”XX”) ‘ It’s Visual Basic!
Debug.Print Replace(“It’s Visual Basic!”,”A”,”XX”,,,vbTextCompare) ‘ It’s VisuXXl BXXsic!

133. Reset هم ي فايل هاي باز شده رو ميبنده.

134. RGB سه مولفه ي قرمز و سبز و آبيه يك رنگ رو ميگيره و اون رو برميگردونه(از نوع Long) مثلا براي رنگ قرمز : (RGB(255,0,0 و يا براي زرد (RGB(255, 255, 0
در ضمن هر آرگومان بايد بين 0 تا 255 باشه.

135. Right (و $Right) برعكس Left عمل ميكنه يعني يه تعداد كاراكتر از سمت راست يك رشته جدا ميكنه.

135. RightB (و $RightB) يك رشته رو ميگيره و به تعداد دلخواه بايت از سمت راست جدا ميكنه.مثلا ”LeftB("Visual", 2)=”l چون هر كاراكتر 2 بايت حساب ميشه.

136. RmDir يك دايركتوري رو حذف ميكنه.توي اون دايركتوري نبايد فولدر يا فايل ديگه اي باشه.

137. Rnd يك عدد تصادفي بين 0 تا 1 (0,1] با سه رقم اعشار از نوع Single برميگردونه مثلا 0.492

138. Round براي يك عدد اعشاري تعداد اعشار دلخواه رو نگه ميداره و بقيه رو حذف ميكنه.مثلا Round(1.2345,2) = 1.23 اينجا 2 تا از ارقام اعشار نگه داشته شدن.

139. RTrim (و $RTrim) يه رشته ميگيره و هرچي Space سمت راست رشته باشه رو حذف ميكنه و رشته ي جديد رو برميگردونه مثلا :
Debug.Print “ Visual Basic “ ‘ = “ Visual Basic“ 

140. SavePicture يك عكس رو ميگيره و اون رو توي يك فايل ذخيره ميكنه(با فرمت Bitmap) اون عكس ميتونه يك Picture يا Image رسم شده ي يك فرم يا Picture Box باشه.

141. SaveSetting با گرفتن نام برنامه(دلخواه) Setion و Key و يه رشته ه عنوان اطلاعات يا تنظيم مورد نظر ، يك Key توي رجيستري با اسم ]نام برنامه[ درست ميكنه.توي اون يك Key ديگه با اسم [Section] درست ميكنه و توي اون يك Value از نوع رشته (SZ)با اسم [Key] درست ميكنه و مقدار اون رو برابر رشته اي كه بهش داديم (Setting) قرار ميده.كه بعدا با تابع GetSetting و يا GetAllSettings ميتونين به اين اطلاعات دسترسي پيدا كنين.اين اطلاعات توي رجيستري توي شاخه ي : 
HKEY_CURRENT_USER\Software\VB and VBA Program Settings

درست ميشن. با توجه به مقدار هايي كه بهشون داديم: 
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\[appName]\[Section]

ScaleX .142-3 و ScaleY يه مقدار و 2 تا واحد ميگيرن و واحد مقداري رو كه گرفتن تغيير ميدن مثلا از Pixel به Inch .آرگومان اول همون مقدار مورد نظره مثلا 1000 دومي واحديه كه براي مقدار بايد در نظر گرفته بشه بطور پيشفرض vbHimetric هستش.بعدي واحد خروجيه كه بطور بيشفرض برابر با ScaleMode فرم هستش كه اون هم به طور پيشفرض vbTwips هستش.مثلا اگه بخواهيم ببينيم 10اينچ چند ميليمتره :
ScaleX(10, vbInches, vbMillimeters)

Seek .144 شماره ي فايلي كه باز شده رو ميگيره و براي حالت Random شماره ركورد بعدي (كه قراره نوشته يا خوانده بشه) و براي حالت هاي ديگه شماره بايت بعدي كه قراره نوشته يا خوانده بشه رو برميگردونه كه قبل از اينكه چيزي نوشته يا خونده بشه مقدار يك رو برميگردونه بعد 2 و به همين ترتيب.فرقش هم با Loc همينه.Loc شماره آخرين ركورد يا بايتي كه نوشته يا خوانده شده رو برميگردونه.

145. SendKeys يك يا چند كاركتر يا دكمه هاي كيبرد رو به پنجره ي فعال ارسال ميكنه درست مثل اينكه دكمه هاي كيبرد فشار داده شده باشن.2 تا آرگومان ميگيره كه دومي اختياريه.آرگومان اولي كاراكتر هايي هستن كه ميخواهيم ارسال كنيم مثلا “vb” .واسه دكمه هاي خاص كيبرد مثل HOME ها DELETE و ... بايد اون ها رو توي آكلاد قرار بدين مثلا :
براي insert از “{INSERT}” يا “{INS}” استفاده ميشه.
براي end از “{END}” استفاده ميشه.
براي delete از “{DELETE}” يا “{DEL}” استفاده ميشه.
براي page down از “{PGDN}” استفاده ميشه.
براي page up از “{PGUP}” استفاده ميشه.
براي home از “{HOME}” استفاده ميشه.
براي علامت چپ از “{LEFT}” استفاده ميشه.
براي علامت بالا از “{UP}” استفاده ميشه.
براي علامت راست از “{RIGHT}” استفاده ميشه.
براي علامت پايين از “{DOWN}” استفاده ميشه.
براي print screen از “{PRTSC}” استفاده ميشه.
براي scroll lock از “{SCROLLLOCK}” استفاده ميشه.
براي break از “{BREAK}” استفاده ميشه.
براي back space از “{BACKSPACE}” يا“{BS}” يا “{BKSP}” استفاده ميشه.
براي enter از “{ENTER}” يا "~" (بدون آكلاد) استفاده ميشه.
براي F1 ، F2 و... هم از “{F1}” ، “{F2}” و ... استفاده ميشه.
براي escape از “{ESC}” استفاده ميشه.
براي tab از “{TAB}” استفاده ميشه.
براي caps lock از “CAPSLOCK” استفاده ميشه.

واسه نگه داشتنه شدن كليد هاي Control و Alt و Shift به ترتيب از ^ ، % ، + استفاده كنين.مثلا براي كنترل بعلاوه ي v از “^v” استفاده كنين.اگه ميخواهين يكي ازين دكمه ها واسه مجموعه اي از كليد ها مورد استفاده قرار بگيره از پرانتز استفاده كنين مثلا براي كنترل بعلاوه ي vb از “^(vb)” استفاده كنين.براي استفاده همزمان از چند تا ازين كليد ها هم اون ها رو پشت سر هم استفاده كنين مثلا براي شيفت بعلاوه ي كنترل بعلاوه v از “+^v” استفاده كنين.اين كار رو براي دكمه هاي HOME و INSERT و ... هم ميتونين بكنين.مثلا كنترل بعلاوه يHOME ميشه “^{HOME}” .

آرگومان دوم از نوع Boolean هستش كه بطور پيشفرض False هستش.اگه True باشه وقتي كه كليدي به يك پنجره ارسال ميشه تابع منتظر ميشه تا اون پنجره عمليات فشرده شدن كليد رو براي خودش پردازش كنه بعد كنترل به تابع برميگرده.

146. SetAttr آدرس يه فايل رو ميگيره و Attributes مربوط به اون رو تغيير ميده.(مثل سيستم آرشيو نرمان و ...)

147. Focus اين تابع Focus رو به كنترلي كه اين متد از اون فراخواني بشه ميده.اگه قبلش اسم كنترل رو نياريم بطور پيشفرض Focus به فرم ي كه تابع توش فراخواني شده داده ميشه.

148. Sng كار تابع Sign( علامت) توي رياضي رو ميكنه.به اين صورت كه يك عدد ميگيره.اگه عدد بزرگتر از صفر باشه مقدار 1 اگه برابر با صفر باشه مقدار صفر و اگه كوچكتر از صفر باشه مقدار 1- رو برميگردونه.

149. Shell آدرس يه فايل اجرايي رو ميگيره و اون رو اجرا ميكنه و Process ID اون رو برميگردونه.آرگومان اولي آدرس فايل هستش كه ميتونه آدرس كامل باشه يا فقط اسم فايل (براي فايل هايي كه توي پوشه ويندوز يا سيستم يا دايركتوري جاري هستن) .آرگومان دومي هم نوع نمايش اون ها هست كه مشخصه مثلا اگه بخواهيم برنامه توي حالت Maximize باز بشه از vbMaximizedFocus استفاده ميكنيم.

150. Show متد مربوط به فرم هستش كه يك فرم رو لود ميكنه و نشون ميده.آرگومان اول اگه vbModal باشه فرم اول(كه كد توش نوشته شده) تا زماني كه فرم دوم(كه با استفاده از متد Show نشون داده شده) بسته نشه قابل دسترسي نيست و كد بعد توي فرم اجرا نميشه.مثل وقتي كه توي فرم يه MsgBox نشون ميدين؛تا وقتي كه پنجره ي MsgBox رو نبندين فرم غير قابل دسترسه و برنامه به خط بعد نميره.آرگومان بعدي هم فرميه كه به عنوان والد فرمي كه قراره نشون داده بشه در نظر گرفته ميشه و مقدار دهيش هم اختياريه.مثلا

‘ ‘In Form 1 :
Form2.Show vbModal,Form1

151. Sin سينوس زاويه ي داده شده(بر حسب راديان) رو حساب ميكنه.

152. SLN 

153. Space(و Space$) يك عدد ميگيره و به تعداد اون عدد Space برميگردونه مثلا Space(4) مقدار “ “ رو برميگردونه.

154. Split يه رشته و يه كاراكتر جدا كننده ميگيره و با توجه به اون كاراكتر كلمه هاي موجود توي اون رشته رو توي يك آرايه رشته اي قرار ميده.مثلا اگه رشته ي “VB Is Easy” و كاراكتر “ “ رو بهش بديم اعضاي آرايه اي كه برميگردونه “VB" ، “Is” و “Easy” هستن.يا اگه “One_Two_Three” و “_” رو بهش بديم اعضاي آرايه “One” ، “Two” و “Three” ميشن.آرگومان اول رشته ي مورد نظره.آرگومان بعدي كاراكتر مورد نظره كه بطور پيشفرض “ “ (Space) در نظر گرفته ميشه.آرگومان بعدي حداكثر تعداد اعضا هستش مثلا اگه براي مثال قبلي اين آرگمان رو 2 ميگذاشتين اعضاي آرايه “One” و “Two” ميشدن(عضو سومي وجود نداشت) آرگومان بعدي هم نوع مقايسه براي كاراكتريه كه بهش ميديم.(توي توضيح تابع InStr در مورد نوع مقايسه توضيح دادم.) 

155. Sqr راديكال يك عدد رو ميگيره.مثلا Sqr(9) = 3. .براي جذر گرفتن يك عدد با فرجه بغير از 2 از توان استفاده كنين مثلا اگه بخواهين از 8 با فرجه 3 جذر بگيرين از 8 ^ (1/3) استفاده كنين.

156. Str (و Str$) يه مقدار رو به نوع Str تبديل ميكنه.مثلا “Str(1) = “1

StrComp .157 دو تا رشته رو مقايسه ميكنه.اگه رشته ها برابر بودن مقدار 0 .اگه اولي از دومي بزرگتر بود مقدار1 و اگه دومي از اولي بزرگتر بود مقدار -1 رو برميگردونه.2 تا آرگومان اول 2 تا رشته ي مورد نظر هستن.سومي هم نوع مقايسه دو تا رشته هستش كه توي توضيح تابع Instr درموردش گفتم اما چون به اين تابع بيشتر مربوط ميشه اينجا هم ميگم. اگه از vbBinaryCompare استفاده كنين بين حروف كوچك و بزرگ تفاوت گذاشته ميشه و اون ها مساوي حساب نميشن (Case Sensitive) اگه از vbTextCompare استفاده كنين حروف بزرگ و كوچك يكي حساب ميشن. vbDatabaseCompare هم مربوط به Access هستش و كاري بهش نداريم.مثلا (StrComp(“abCD”,”abcd”,vbBinaryCompare مقدار -1 رو برميگردونه يعني رشته ها با هم مساوي نيستن.در صورتي كه 0= (StrComp(“abCD”,”abcd”,vbTextCompare.

اين رو هم بگم كه ويبي به طور پيشفرض Case Sensitive هستش و حروف بزرگ و كوچك مساوي نيستن يعني “VB” <> “Vb” اما اگه كد Option Compare Text رو اول كدها(بالاي فرم يا ماژول) بزارين اين حساسيت ويبي از بين ميره.

158. StrConv واسه تبديل كردن نوع يك رشته به يك نوع ديگه بكار ميره.آرگومان اول رشته ي مورد نظره .آرگومان بعدي هم نوع جديد هستش.كه يكي از مقدار هاي زير ميتونه باشه :
vbFromUnicode – با اين آرگومان تابع رشته اي كه بش داديم رو Unicode در نظر ميگيره و اون رو به ANSI تبديل ميكنه.
vbHiragana - كاراكتر هاي Katakana ي توي رشته رو به Hiragana تبديل ميكنه.(مربوط به Encoding كره ايه و بدرد ما نميخوره اصلا!)
vbKatakana – برعكس قبلي.
vbLowerCase – همه ي حروف بزرگ توي رشته رو به حروف كوچك تبديل ميكنه.مثلا “Visual Basic” ميشه “visual basic”
vbNarrow – كاراكتر هاي 2 بايتي رو به كاراكتر هاي تك بايتي تبديل ميكنه
vbWide - برعكس قبلي.
vbPopperCase – اولين حروف همه ي كلمه هاي موجود توي رشته(رشته اي كه بعد از فاصله قرار داره) رو به حروف بزرگ تبديل ميكنه.مثلا “Visual basic is easy” رو به “Visual Basic Is Easy” تبديل ميكنه.
vbUnicode - كاراكتر هاي متن رو به كاراكتر هاي Unicode تبديل ميكنه.
vbUpperCase - همه ي حروف كوچك توي رشته رو به حروف بزرگ تبديل ميكنه.مثلا “Visual Basic” ميشه “VISUAL BASIC”

اين رو هم بگم كه اين تابع مثل بقيه تابع هاي كار با رشته ي ويبي رشته اي كه بهش ميديم رو تغيير نميده و رشته ي جديد رو برميگردونه.

159. String (و String$) يك عدد(n) و يه كاراكتر ميگيره و يه رشته كه حاوي n تا از اون كاراكتره برميگردونه .(مثل Space كه n تا فاصله برميگردونه) مثلا ”String(4,”a”) = “aaaa.در ضمن به جاي اون كاراكتر ميتونين كد اسكيش رو هم به تابع بدين مثلا ”String(4,65)=”aaaa.

160. StrReverse يه رشته رو برعكس ميكنه مثلا ”StrReverse(“VisualBasic”) = “cisaBlausiV

161. Switch يك تعداد آرگومان كه تعدادشون بايد زوج باشه ميگيره به طوري كه :
آرگومان هاي فرد( اولي ، سومي ، پنجمي و ...) بايد يك عبارت باشن(يا ميشه گفت عبارت در نظر گرفته ميشن)
آرگومان هاي زوج هم بايد مقدار باشن(يا ميشه گفت مقدار در نظر گرفته ميشن)
تابع مياد به ترتيب تك تك آرگومان هاي فرد رو مورد بررسي قرار ميده.به اولين آرگوماني كه ارزشش درست (True) باشه كه رسيد آرگومان بعد از اون(كه يك مقدار هست) رو برميگردونه.

مثلا فرض كنين شما ميخواهين يك تابعي درست كنين كه يك عدد از 1 تا 5 بگيره و معادل رشته اي اون رو (“One” ، “Two” و ...) رو برگردونه.با استفاده از اين تابع شما ميتونين اينطوري عمل كنين :
Function nToS(Byval n as Integer) As String
If n > 5 Or n < 1 Then Exit Function
nToS = Switch(n=1,”One”,n=2,”Two”,n=3,”Three”,n=4,”Four”,n=5,”Five”)
End Function

كد اين تابع اول چك ميكنه كه عددي كه بهش داده شده بين 1 تا 5 هست يا نه.اگه نبود از تابع خارج ميشه.
اما اگه بود با استفاده از تابع Swich مقدار ها ي مختلفي كه n ميتونه داشته باشه رو چك ميكنه و مقدار معادل رشته اي رو برميگردونه.مثلا nToS(4)=”Four” .

162. SYD

163. Tan اين هم تانژانت يك زاويه (بر حسب راديان) رو برميگردونه.

164. TextHeight يك رشته ميگيره و ارتفاعي رو كه اون رشته اشغال ميكنه رو باتوجه به فونت فرم و واحد فرم(ScaleMode) برميگردونه.مثلا اگه واحد و فونت فرم پيشفرض باشه :
TextHeight(“m”) = TextHeight(“MA”) = 195

يعني اينكه ارتفاعي كه اشغال ميكنه به طول رشته و يا كوچك و بزرگ بودن كاراكتر ها بستگي نداره(كه اين هم بديهيه!)

165. TextWidth كار تابع قبلي رو براي عرض يك رشته انجام ميده.با اين فرق كه همونطور كه ميدونيم با تغيير تعداد كاراكتر يك رشته و يا كوچك و بزرگ بودن كاراكتر ها عرضي كه رشته اشغال ميكنه فرق ميكنه.مثلا
TextWidth(“a”) = 90 ، TextWidth(“A”) = 166 و TextWidth(“Abcd”) = 375

167. TimeSerial ساعت و دقيقه و ثانيه رو ميگيره و زمان رو با نوع Dateبرميگردونه مثلا 
Debug.Print TimeSerial(10, 20, 30) ‘ prints 10:20:30 AM

168. TimeValueمثل قبليه با اين فرق كه يه تا مقدار رو يكجا و از نوع رشته ميگيره .مثلا :
Debug.Print TimeValue(“10:20:30”) ‘ prints 10:20:30 AM

169. Trim (و Trim$) يك رشته ميگيره و فاصله هاي اول و آخرش رو حذف ميكنه(كار LTrim و RTrim رو با هم ميكنه) مثلا :
Debug.Print Trim(“ Visual Basic “) ‘prints “Visual Basic”

170. TypeName يك مقدار ميگيره و نوعش رو برميگردونه.اون مقدار ميتونه از هر نوعي باشه.مثلا :

Debug.Print TypeName(Me) ‘ prints Form1
Debug.Print TypeName(Command1) ‘ prints CommandButton
Debug.Print TypeName(“Hello”) ‘ prints String
Debug.Print TypeName(2.2) ‘ prints Double
Debug.Print TypeName(Err) ‘ prints ErrObject

171. UCase (و UCase$) يك رشته ميگيره و همه ي حروف كوچك اون رو به حروف بزرگ تبديل ميكنه مثلا ”!UCase(“Hello!”) = “HELLO.اين تابع برعكس LCase كار ميكنه.

172. Unload يك آبجك رو از حافظه پاك ميكنه.مثلا Unload Form1

173. Val يك رشته ميگيره و عدد هاي سمت چپش رو جدا ميكنه و وقتي به يك كاراكتر غير عددي يا غير نقطه برسه كارش رو ادامه ميده .عددي كه برميگردونه از نوع Double هستش.مثلا
Val(“2 4 7 11 323.23 adas”) = 24711323.23

174. در مورد كار تابع هاي ValidateControls و WhatsThisMode هم چيزي نفهميدم :

MSDN :
ValidateControls: Ensures that the contents of the last control on the form are valid before exiting the form.
WhatsThisMode: Duplicates the functionality of the WhatsThisMode method of a Visual Basic 6.0 form.

175. VarType هم يك مقدار ميگيره و نوع اون رو از نوع vbVarType برميگردونه و فرقش هم با TypeName همينه.مثلا 
VarType(2.2) = vbDouble

176. Year يه تاريخ ميگيره و سال اون رو استخراج ميكنه.مثلا
Year(Now()) = 2005 

177. ‌ZOrder مختصات Z يك كنترل(به طور پيشفرض فرمي كه توش فراخواني ميشه) رو تعيين ميكنه.مختصات Z تيعيين ميكنه كه كدوم كنترل ها بايد زير بقيه و كدوم بايد روي ديگري باشه.مقدار 0 (مقدار پيشفرض) يه كنترل رو به رو مياره و مقدار 1 به زير ميبره



نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:






موضوعات مرتبط: آموزش ، ،
برچسب‌ها:

تاريخ : شنبه 22 آذر 1393برچسب:, | 10:27 | نویسنده : رامین رسولی |